var realAlarm = {
	init : function() {
		// 业务定时器是否报错的变量,0 ok, 1 报错状态
		this.isError = 0;
		// 启动守护定时器，防止业务定时器，出问题后，重新打开业务定时器
		window.setInterval("realAlarm.commonJob()",60000);
		
		$('.tab-alarm').height(nav.whiceH[1]);

		this.tempAlarmType = alarmType;

		/** 计算报警类型总和 * */
		this.hourList = [];
		this.typeList = [];
		this.homeworkName = [];
		this.subModal = global.subModal();
		this.handlerRefresh = 0;

		this.computeSum();
		this.initAlarmTypeList();
		this.queryTabIndex = this.quaryTab();
		this.pendingAlarm();
		
		this.initVehicleList();
		this.handleAlarmSave();
		this.bindquery();
		this.queryDetail('.queryAlarm', '#senior', 30, function(height) {
			var flexIgridH = nav.whiceH[1] - 185 - height + 30 + 'px';
			$('#queryResult').flexResize('auto', flexIgridH);
		});
		// 初始化静态数据
		realAlarm.vehMap = realAlarm.initMap();

		homeworkName = "";
		/** 初始化日期 * */
		var date = new Date();
		$("#inputStartDate").val(global.getToday(date));
		$("#inputEndDate").val(global.getTime(date));

		$('.modal-form-select').select2();
		$(document).scroll(function(e) {
			var scrollTop = $(document).scrollTop();
			if (scrollTop > 0) {
				if (scrollTop < 42) {
					$('.tab-alarm').css({
						'position' : 'fixed',
						'height' : nav.whiceH[0] + 'px',
						'top' : 42 - scrollTop + 'px',
						'left' : '41px',
						'z-index' : 1000
					});
				} else {
					$('.tab-alarm').css({
						'position' : 'fixed',
						'height' : nav.whiceH[0] + 'px',
						'top' : 0,
						'left' : '41px',
						'z-index' : 1000
					});
				}
			} else {
				$('.tab-alarm').css({
					'position' : 'absolute',
					'height' : nav.whiceH[1] + 'px',
					'top' : 0,
					'left' : '1px'
				});
			}
		});
	},
	/**
	 * 初始化map信息
	 */
	initMap : function() {
		var vehMap = new HashMap();
		$(vehList).each(function(index, obj) {
			vehMap.put(obj.CommNO, obj);
		});
		return vehMap;
	},
	// 今日报警getAlarmType
	getAlarmType : function() {
		$('#all-alarm-ul').find('.list').each(function(index, ele) {
			if ($(ele).hasClass('active')) {
				alarmType = $(this).attr("alarmType");
				return;
			}
		});
		return alarmType;
	},
	/**
	 * 报警切换
	 */
	quaryTab : function() {
		// 是否开启自动刷新
		$("#isfresh").click(function() {
			if (typeof (realAlarm.timeOutEvent) != "undefined") {
				window.clearTimeout(realAlarm.timeOutEvent);
			}
			if (!$(this).attr('checked')) {
				realAlarm.timeOutEvent = setTimeout("realAlarm.timerJob(1,100)", 30000);
			}
		});
		var index = 0;
		var _this = this;
		var todayAlarm = this.todayAlarm();
		todayAlarm.option.xAxis.data = this.hourList;
		todayAlarm.option.series[0].data = this.typeList;
		$('.date-alarm').find('.list').click(function() {
					index = $(this).index();
					$('.tab-alarm-cont-list').hide().eq(index).show();
					if (index == 1) {
						if ($(this).attr("class").indexOf("hadOpen") < 0) {
							$(this).addClass('hadOpen');
							_this.loadChartData(function() {
								todayAlarm.setOption();
								todayAlarm.refresh();
							});
							$('#todayQueryAlarmTypeBtn').trigger("click");
							todayAlarm.refresh();
						} else {
							// 当不是选择全部是 触发今日报警的点击事件
							if (realAlarm.getAlarmType() != 0) {
								$("#todayQueryAlarmType").val(
										realAlarm.getAlarmType()).trigger(
										"change");
								$('#todayQueryAlarmTypeBtn').trigger("click");
							}
						}
					}
					$(this).addClass('active');
					$(this).siblings().removeClass('active');
					$('.date-alarm').find('.line').css({
						'left' : 100 * index
					});
					// 时间选择
					if (index == 2) {
						realAlarm.historyAlarm();
					}
				});
		var _this = this;
		$('#all-alarm-ul').on('click','.list',function() {
				$(this).siblings().removeClass('active');
				$(this).addClass('active');
				var tabIndex = 0;
				$('.date-alarm-ul').find('.list').each(function() {
					if ($(this).hasClass('active')) {
						tabIndex = $(this).index();
					}
				});
				if (tabIndex == 0) {
					_this.subModal.pop(".content", "正在加载数据", false);
					realAlarm.reloadTabCommon(1,100);
                    if (realAlarm.getAlarmType() != 0) {
                        $("#todayQueryAlarmType").val(realAlarm.getAlarmType()).trigger("change");
                    }
				} else if (tabIndex == 1) {
					// 今日报警跟着变化
					if (realAlarm.getAlarmType() != 0) {
						$("#todayQueryAlarmType").val(realAlarm.getAlarmType()).trigger("change");
						$('#todayQueryAlarmTypeBtn').trigger("click");
					}
				}
		});
		return {
			'index' : index
		};
	},
	setNotRefresh : function() {
		// 记录全局变量，处理完毕，刷新待处理报警,自动查询，左侧报警类型切换 不启动定时器，防止启动多次settimeout,引起页面卡死
		realAlarm.handlerRefresh++;
	},
	/** 获取选中标签的下表 * */
	/** 计算报警类型总和 * */
	computeSum : function() {
		var sum = 0;
		$('#all-alarm').siblings().each(function(index, ele) {
			sum = sum + parseInt($(ele).attr("count"));
		});
		$("#all-alarm-sum").text(sum);
	},
	//通用定时器,如果业务定时器报错，重新启动业务定时器
	commonJob : function(){
		if(realAlarm.isError == 1){
			/**
			 * 1. 关闭弹出框
			 * 2. 清除之前的定时器
			 * 3. 重新新的定时器
			 */
			realAlarm.subModal.close();
			if (typeof (realAlarm.timeOutEvent) != "undefined") {
				window.clearTimeout(realAlarm.timeOutEvent);
			}
			if (!$(this).attr('checked')) {
				realAlarm.timeOutEvent = setTimeout("realAlarm.timerJob(1,100)", 30000);
			}
			realAlarm.isError = 0;
		}
	},
	timerJob : function(page,pageSize) {
		realAlarm.isError = 1;//将业务定时器设置成错误状态

		var tabIndex = 0;
		$('.date-alarm-ul').find('.list').each(function() {
			if ($(this).hasClass('active')) {
				tabIndex = $(this).index();
			}
		});
		if(tabIndex == 0){
			realAlarm.subModal.pop('.content', "正在加载数据", false);
		}
		// 记录当前选中的状态
		var alarmType = realAlarm.getAlarmType();
		var CommNOs = new Array();
		for (var i = 0; i < vehList.length; i++) {
			CommNOs.push(vehList[i].CommNO);
		}
		var params = {
				'CommNOs' : CommNOs.toString(),
				"alarmType":parseInt(alarmType),
				"page" : page,
				"pageSize": pageSize,
				"selectCommNO":$("#pendingQuaryCar").val(),
				"tabIndex":tabIndex
		};
		// 查询左侧报警数据统计的数字,并记录报警类型，自动刷新右侧数据
		$.ajax({
			url : appCtx + 'alarm/realtime/group.html?time=' + new Date().getTime(),
			type : 'POST',
			dataType : 'json',
			cache : 'false',
			data : params,
			success : function(result) {
				if(typeof(result) != "undefined" && result != null){
					if (result.data == 0) {
						// 清空报警类型
						$("#all-alarm").siblings().remove();
						// 重新组装报警统计数据
						$(result.list).each(function(index, item) {
							var $li = "<li class='list";
							if (alarmType == item.alarmType) {
								$li = $li + " active";
							}
							$li = $li + "' count='" + item.count
									+ "' alarmType='" + item.alarmType
									+ "'>" + "<a href='javascript:;'>"
									+ item.alarmName + "(" + item.count
									+ ")</a></li>";
							$("#all-alarm-ul").append($($li));
						});
						// 重新计算全部报警总和
						realAlarm.computeSum();
						// 自动刷新实时报警
						if (tabIndex == 0) {
							// (处警时)自动刷新
							var json = eval("(" + result.pendingList + ")");
							pendingList = json;
							realAlarm.initPendingTab(json);
						}
						realAlarm.reloadTab(page,pageSize);
					}else{//失败
						realAlarm.reloadTab(page,pageSize);
					}
				}else{
					realAlarm.reloadTab(page,pageSize);
				}
			},
			error : function(XMLHttpRequest, textStatus, errorThrown){
				realAlarm.reloadTab(page,pageSize);
			}
		});
	},
	reloadTab : function(page,pageSize){
		realAlarm.isError = 0;//设置业务定时器成功
		realAlarm.subModal.close();
		if (realAlarm.handlerRefresh != 0) {
			realAlarm.handlerRefresh--;
		} else {
			//清除之前的定时器，重新新的定时器
			if (typeof (realAlarm.timeOutEvent) != "undefined") {
				window.clearTimeout(realAlarm.timeOutEvent);
			}
			realAlarm.timeOutEvent = setTimeout("realAlarm.timerJob(" + page + "," + pageSize + ")",30000);
		}
	},
	/**
	 * 左侧报警类型参数返回
	 */
	getAlarmTypeParam : function() {
		var alarmType = realAlarm.getAlarmType();

		var CommNOs = new Array();
		for (var i = 0; i < vehList.length; i++) {
			CommNOs.push(vehList[i].CommNO);
		}
		var VehicleID = $("#pendingQuaryCar").val();
		if (VehicleID != null && VehicleID != "") {
			var params = [ {
				name : 'CommNOs',
				value : VehicleID
			}, {
				name : 'AlarmType',
				value : alarmType
			} ];
			return params;
		} else {
			var params = [ {
				name : 'AlarmType',
				value : alarmType
			}, {
				name : 'CommNOs',
				value : CommNOs.toString()
			} ];
			return params;
		}
	},
	/** 重新加载待处理报警列表* */
	reloadPendingAlarm : function() {
		if (this.queryTabIndex.index != 0) {
			return;
		}
		$("#pendingAlarm").flexOptions(
			{
				newp : 1,// 设置起始页
				params : realAlarm.getAlarmTypeParam(),
				url : appCtx + 'alarm/pending/Info.html?time=' + new Date().getTime()
			}
		).flexReload();// 重新加载
	},
	/** 实时报警处理 * */
	realTimeAlarmHandler : function() {
		if ($("#handlerVevhicleid").val() == "") {
			global.ajaxLoading.close();
			global.ajaxLoading.pop("未选择处警车辆,不能处警", true, 1000);
			return;
		}
		if ($("#handlerAlarmType").val() == "") {
			global.ajaxLoading.close();
			global.ajaxLoading.pop("未选择处警类型,不能处警", true, 1000);
			return;
		}
		var params = {
			"vehicleId" : $("#handlerVevhicleid").val(),
			"alarmType" : $("#handlerAlarmType").val(),
			"alarmTime" : $("#handlerAlarmTime").val(),
			"result" : $("#modal-form-select").val(),
			"content" : $("#handerContent").val(),
		};
		$.ajax({
			url : appCtx + 'alarm/realtime/handler.html?time=' + new Date().getTime(),
			type : 'POST',
			contentType : "application/json; charset=utf-8",
			dataType : 'json',
			cache : 'false',
			data : JSON.stringify(params),
			success : function(result) {
				global.ajaxLoading.close();
				if (result.data == 0) {
					$('#handleAlarm').modal('hide');
					realAlarm.reloadTabCommon(1,100);
				} else {
					global.ajaxLoading.pop(result.msg, true, 1000);
				}
			}
		});
	},
	/** 查询实时报警明细 * */
	queryRealTimeAlaramDetail : function(params) {
		var _this =this;
		$("#handlerTime").val(global.getTime(new Date()));
		$('#handleAlarm').modal('show');
		$("#handleAlarm-table-body").empty();
		global.ajaxLoading.pop('正在加载处警数据', true);
		$.ajax({
			url : appCtx + 'alarm/pending/detailInfo.html?time=' + new Date().getTime(),
			type : 'POST',
			contentType : "application/json; charset=utf-8",
			dataType : 'json',
			cache : 'false',
			data : JSON.stringify(params),
			success : function(result) {
				if(result != null){
					if (result.data == 0) {
						if (result.list.length == 0) {
							global.ajaxLoading.pop("请稍后处理", false, 1000);
						} else {
							$('#handleAlarmSave').attr("disabled", false).removeClass("closeBtn");
							var $tr = "";
							$(result.list).each(function(index, item) {
								var alarmInfo = "";
								if (typeof (item.alarmInfo) != "undefined") {
									alarmInfo = item.alarmInfo;
								}
								$tr = $tr
										+ "<tr> "
										+ "<td>" + item.registrationNO + "</td>"
										+ "<td>" + (typeof(item.internalNumber) != "undefined" ? item.internalNumber : "") + "</td>"
										+ "<td>" + item.vehicleTeamName + "</td>"
										+ "<td>" + _this.tempAlarmType.getAlarmName(item.alarmTypeId) + "</td>"
										+ "<td>" + item.alarmSource + "</td>"
										+ '<td width="250"><div class="textOverFlow" style="width:250px;" title="'
										+ alarmInfo
										+ '">'
										+ alarmInfo
										+ '</div></td>'
										+ "<td width='160'>" + item.alarmTime + "</td></tr>";
							});
							global.ajaxLoading.close();
							$("#handleAlarm-table-body").append($tr);
						}
					} else {
					global.ajaxLoading.close();
					global.ajaxLoading.pop(result.msg, false, 1000);
				}
			}
			}
		});
	},
	/** 待处理报警 */
	pendingAlarm : function() {
		var pendingquaryCar = function() {
			$("#pendingQuaryCar").select2();
			$('#todayQueryAlarmType').select2();
		};
		pendingquaryCar();
		var _this = this;
		var formatAlarmAction = function(commNo, alarmTypeId, alarmName) {
			var obj = realAlarm.vehMap.get(commNo);
			var vehicleId = obj.id;
			var str = "<a class='alarmDeal' alarmName=\""
					+ alarmName
					+ "\"vid=\""
					+ vehicleId
					+ "\" alarmType=\""
					+ alarmTypeId
					+ "\" href='javascript:void()'style='float: left;' ><font color='blue'>处理报警</font></a>  ";
			 str +="<span class ='db fl' style='width:10px;height:12px;text-align:center;'>|</span>";
			str += "<a class='viewMap'  vehilceID=\""
					+ vehicleId
					+"\"commNo=\""
					+ commNo
					+ "\"  href='javascript:void(0)'  style='float: left;'><font color='blue'>查看地图</font></a>";
			return str;
		};

		$('body').on('click','.viewMap',function() {
					var vehilceID = $(this).attr("vehilceID");
					var commNo = $(this).attr("commNo")
					window.open(appCtx+ 'gis/monitor/vehicleMonitor.html?vehicleID=' + vehilceID+'&commNo='+commNo);
		});
		$('body').on( 'click', '.alarmDeal', function() {
			$('#handerContent').val("");
			var vid = $(this).attr("vid");
			var alarmType = $(this).attr("alarmType");
			var params = {
				"VehicleID" : vid,
				"AlarmType" : alarmType,
				"fromNumber" : "0",
				"pageSize" : 1000
			};
			$("#handlerVevhicleid").val(vid);
			$("#handlerAlarmType").val(alarmType);
			$("#showAlarmType").val($(this).attr("alarmName"));
			$('#handleAlarmSave').attr("disabled", true).addClass("closeBtn");
			realAlarm.queryRealTimeAlaramDetail(params);
		});

		var formatAlarmInfo = function(msg) {
			var str = '<div class="textOverFlow" style="padding-left:0;padding-right:0;" title="'
					+ msg + '">' + msg + '</div>';
			return str;
		};
		var formatregistrationNO = function(commNo) {
			var obj = realAlarm.vehMap.get(commNo);
			return obj.RegistrationNO;
		}
		var formatAlmParams = function(commNo) {
			var obj = realAlarm.vehMap.get(commNo);
			return obj.almParams;
		}
		var formatinternalNumber = function(commNo) {
			var obj = realAlarm.vehMap.get(commNo);
			return typeof(obj.internal_number) != "undefined" ? obj.internal_number : "";
		}
		var formatvehicleTeamName = function(commNo) {
			var obj = realAlarm.vehMap.get(commNo);
			return obj.Name;
		}
		$("#pendingAlarm").flexigrid({
					dataType : 'json',
					//url : appCtx + 'alarm/pending/Info.html?time=' + new Date().getTime(),
					method : 'POST',
					params : realAlarm.getAlarmTypeParam(),
					colModel : [
							{
								display : '序号',
								name : 'rowId',
								width : 3,
								sortable : false,
								align : 'left',
							},
							{
								display : '车牌号',
								name : 'registrationNO',
								width : 9,
								sortable : false,
								align : 'left',
								paramcolnames : [ 'commNo' ],
								handlefunction : formatregistrationNO
							},
							{
								display : '自编号',
								name : 'internalNumber',
								width : 6,
								sortable : false,
								align : 'left',
								paramcolnames : [ 'commNo' ],
								handlefunction : formatinternalNumber
							},
							{
								display : '车队',
								name : 'vehicleTeamName',
								width : 16,
								sortable : false,
								align : 'left',
								paramcolnames : [ 'commNo' ],
								handlefunction : formatvehicleTeamName
							},
							{
								display : '报警类型',
								name : 'alarmType',
								width : 6,
								sortable : false,
								align : 'left',
							},
							{
								display : '报警来源',
								name : 'alarmSource',
								width : 6,
								sortable : false,
								align : 'left',
							},
							{
								display : '报警说明',
								name : 'alarmInfo',
								width : 28,
								sortable : false,
								align : 'left',
								paramcolnames : [ 'alarmInfo' ],
								showTitle : 'alarmInfo',
							},
							{
								display : '最新报警时间',
								name : 'alarmTime',
								width : 14,
								sortable : false,
								align : 'left',
							},
							{
								display : '操作',
								name : 'Handler',
								width : 14,
								sortable : false,
								align : 'center',
								paramcolnames : [ 'commNo', "alarmTypeId","alarmType" ],
								handlefunction : formatAlarmAction,
							} ],
					sortname : "commNo",// 第一次加载数据时排序列
					sortorder : "desc",// 第一次加载数据时排序类型
					resizable : false,
					usepager : true,// 是否分页，默认为true。
					showToggleBtn : false,
					showTableToggleBtn : false,// 是否显示收起/打开按钮,默认不显示。
					useRp : true,// 是否可以动态设置每页显示的结果数，默认为false。
					rp : 100,// 每页记录数，默认为10
					rpOptions : [10, 50, 100, 300, 500 ], // 每页结果数
					checkbox : false,// 是否要多选框,默认为false。
					rowId : 'terminalId',// 多选框绑定行的id,只有checkbox : true时才有效。
					singleSelect : true,
					width : $('.pendingAlarm').width(),// 表格宽度
					widthType : '%',
					height : nav.whiceH[1] - 185, // 表格高度
					titDisplay : false,
					reload:true,
					onSuccessH :function(){
						realAlarm.initPendingTab(pendingList);
					},
					tabNext : realAlarm.tabNext,//下一页
					rpOptionChange : realAlarm.rpOptionChange,//改变页的大小
					rpReload : realAlarm.rpReload, //重新刷新
					tabPrev : realAlarm.tabPrev, //上一页
					tabLast: realAlarm.tabLast,//最后一页
					tabFirst : realAlarm.tabFirst //上一页
				});

	},
	reloadTabCommon : function(page,pageSize){
		
		realAlarm.setNotRefresh();
		realAlarm.timerJob(page,pageSize);
	},
	tabNext : function(page,pageSize){
		var total = pendingList.total;
		//未到最后一页，允许翻页
		if(page * pageSize < total){
			realAlarm.reloadTabCommon(page + 1,pageSize);
		}
	},
	tabLast : function(page,pageSize){
		var total = pendingList.total;
		var lastPage = total % pageSize == 0 ? parseInt(total / pageSize) : parseInt(total / pageSize) + 1;
		if(page != lastPage){//最后一页不需要往后翻
			realAlarm.reloadTabCommon(lastPage,pageSize);
		}
	},
	tabFirst : function(page,pageSize){
		var total = pendingList.total;
		//未到第一页，允许翻页
		if(page != 1){
			realAlarm.reloadTabCommon(1,pageSize);
		}
	},
	tabPrev : function(page,pageSize){
		var total = pendingList.total;
		//未到第一页，允许翻页
		if(page != 1){
			realAlarm.reloadTabCommon(page - 1,pageSize);
		}
	},
	rpReload : function(page,pageSize){
		realAlarm.reloadTabCommon(page,pageSize);
	},
	rpOptionChange : function(page,pageSize){
		realAlarm.reloadTabCommon(page,pageSize);
	},
	initPendingTab : function(pendingList){
		$("#pendingAlarm").flexAddData(pendingList);
	},
	loadChartData : function(callback) {
		var _this = this;
				var d = [];
				if (d != null) {
					_this.hourList = new Array();
					_this.typeList = new Array();
					_this.homeworkName = new Array();
					for (var i = 0; i < d.length; i++) {
						_this.hourList.push(d[i].hour);
						_this.typeList.push(d[i].count);
						_this.homeworkName.push(d[i].alarmType);
					}
					var time = new Array();
					if (_this.hourList[0] != null) {
						time = _this.hourList[0].split('-');
					} else {
						time = [ '00', '00' ];
					}
					callback && callback();
					var params = [ {
						name : 'startTime',
						value : time[0].trim()
					}, {
						name : 'endTime',
						value : time[1].trim()
					}, {
						name : 'alarmType',
						value : $("#todayQueryAlarmType").val()
					} ];
				}
	},

	// 获取今日报警里面选择的报警类型
	getRelaodAlarmTypeParam : function() {
		var alarmType = $("#todayQueryAlarmType").val();
		var params = [ {
			name : 'AlarmType',
			value : alarmType
		} ];
		return params;
	},
	// 添加报警类型到今日报警页面
	initAlarmTypeList : function() {
		$
				.ajax({
					type : 'post',
					url : appCtx + "alarm/queryAlarm.html?time=" + new Date().getTime(),
					cache : false,
					dataType : "JSON",
					success : function(data) {
						if (data) {
							var selectStr = "";
							selectStr += "<option value=''>请选择报警类型</option>";
							$.each(data.vehicleList,function(entryIndex, entry) {
								// 只显示符合业务的报警数据
								if (entry.AlarmKindID == 2
										|| entry.AlarmKindID == 3
										|| entry.AlarmKindID == 1
										|| entry.AlarmKindID == 316
										|| entry.AlarmKindID == 321
										|| entry.AlarmKindID == 100501
										|| entry.AlarmKindID == 100504
										|| entry.AlarmKindID == 100503
										|| entry.AlarmKindID == 100504) {
									if (realAlarm.getAlarmType() == entry.AlarmKindID) {
										selectStr += "<option value='"
												+ entry.AlarmKindID
												+ "' selected>"
												+ entry.alarmName
												+ "</option>";
									} else {
										selectStr += "<option value='"
												+ entry.AlarmKindID
												+ "'>"
												+ entry.alarmName
												+ "</option>";
									}
								}
							});
							$('#quaryType').html(selectStr);
							$('#todayQueryAlarmType').html(selectStr);
						}
					}
				});
	},

	/**
	 * 今日报警 表格展示
	 */
	loadTodayAlarmTable : function(params) {
		var _this = this;
		var formatAlarmInfo = function(msg) {
			var str = '<div class="textOverFlow" style="padding-left:0;padding-right:0;" title="'
					+ msg + '">' + msg + '</div>';
			return str;
		};
		global.ajaxLoading.pop("正在加载数据", true, 1000);

		var getAlarmName = function (msg) {
			if(msg != ""){
                var AlarmName =	realAlarm.tempAlarmType.getAlarmName(Number(msg));
                return AlarmName;
			}
        };

		// _this.subModal.pop('#tadayAlarmTableWarp','正在加载数据',true);
		$("#tadayAlarmTable").flexigrid(
				{
					dataType : 'json',
					url : appCtx + 'alarm/realtime/hourDetail.html?time='
							+ new Date().getTime(),
					params : params,
					method : 'GET',
					colModel : [ {
						display : '车牌号',
						name : 'registrationNO',
						width : 115,
						sortable : false,
						align : 'left'
					}, {
						display : '自编号',
						name : 'internalNumber',
						width : 120,
						sortable : false,
						align : 'left',
					}, {
						display : '车队',
						name : 'vehicleTeamName',
						width : 250,
						sortable : false,
						align : 'left',
					}, {
						display : '报警类型',
						name : 'alarmType',
						width : 100,
						sortable : false,
						align : 'left',
                        paramcolnames : [ 'alarmType' ],
                        handlefunction : getAlarmName,
					}, {
						display : '报警说明',
						name : 'alarmInfo',
						width : 450,
						sortable : false,
						align : 'left',
						paramcolnames : [ 'alarmInfo' ],
						handlefunction : formatAlarmInfo,
					}, {
						display : '最新报警时间',
						name : 'alarmTime',
						width : 120,
						sortable : false,
						align : 'left',
					} ],
					resizable : false,
					sortname : "alarmTime",// 第一次加载数据时排序列
					sortorder : "desc",// 第一次加载数据时排序类型
					usepager : true,// 是否分页，默认为true。
					showToggleBtn : false,
					showTableToggleBtn : false,// 是否显示收起/打开按钮,默认不显示。
					useRp : true,// 是否可以动态设置每页显示的结果数，默认为false。
					rp : 10,// 每页记录数，默认为10
					rpOptions : [ 10, 50, 100, 300, 500 ], // 每页结果数
					checkbox : false,// 是否要多选框,默认为false。
					rowId : 'registrationNO',// 多选框绑定行的id,只有checkbox :
					// true时才有效。
					singleSelect : true,
					width : 'auto',// 表格宽度
					height : nav.whiceH[1] - 130, // 表格高度
					titDisplay : false,
					autoload : true,
					onError : function() {

					}
				});

	},
	reloadTodayAlarmTable : function(params) {
		global.ajaxLoading.pop("正在加载数据", true, 1000);
		$("#tadayAlarmTable").flexOptions({
			newp : 1,// 设置起始页
			params : params
		}).flexReload();// 重新加载
		// 不留空白
		$("#tadayAlarmTable").css("margin-top", 0);
	},

	/**
	 * 今日报警 柱形图显示
	 */
	todayAlarm : function() {
		var _this = this;
		var option = {
			color : [ '#e77817' ],
			tooltip : {
				trigger : 'axis',
				axisPointer : { // 坐标轴指示器，坐标轴触发有效
					type : 'shadow' // 默认为直线，可选为：'line' | 'shadow'
				}
			},
			grid : {
				left : '3%',
				right : '10%',
				bottom : '10%',
				containLabel : true
			},
			xAxis : [ {
				type : 'category',
				name : '时间（24小时制）',
				data : _this.hourList,
				axisTick : {
					alignWithLabel : true
				}
			} ],
			yAxis : [ {
				type : 'value',
				name : '报警次数',
				axisLabel : {
					formatter : function(value, index) {
						if (value >= 1) {
							return value;
						}
						if (value == 0) {
							return value;
						}
					}
				}
			} ],
			series : [ {
				name : '报警数量',
				type : 'bar',
				barWidth : '60%',
				data : _this.typeList
			} ]
		};
		// ie会重复数据 清空它
		$("#todayAlarm").html("");
		var myChart = echarts.init(document.getElementById('todayAlarm'));
		myChart.clear();

		myChart.setOption(option);
		window.onresize = myChart.resize;
		myChart.on('click', function(params) {
			var time = new Array();
			time = params.name.split('-');
			Params = [ {
				name : 'startTime',
				value : time[0].trim() + ":00"
			}, {
				name : 'endTime',
				value : time[1].trim() + ":00"
			}, {
				name : 'alarmType',
				value : $("#todayQueryAlarmType").val()
			} ];
			_this.reloadTodayAlarmTable(Params);
		});

		return {
			refresh : function() {
				myChart.resize();
			},
			option : option,
			setOption : function() {
				myChart.setOption(option);
			}

		};
	},
	relaodTodayAlarm : function() {
		var _this = this;
		$.ajax({
			dataType : 'json',
			url : appCtx + 'alarm/realtime/hourGroup.html?time='
					+ new Date().getTime(),
			method : 'GET',
			data : realAlarm.getRelaodAlarmTypeParam(),
			success : function(data) {
				var d = data.rows;
				if (d != null) {
					_this.hourList = new Array();
					_this.typeList = new Array();
					_this.homeworkName = new Array();
					for (var i = 0; i < d.length; i++) {
						_this.hourList.push(d[i].hour);
						_this.typeList.push(d[i].count);
						_this.homeworkName.push(d[i].alarmType);
					}
					var time = new Array();
					if (_this.hourList[0] != null) {
						time = _this.hourList[0].split('-');
					} else {
						time = [ '00', '00' ];
					}
					var todayAlarm = _this.todayAlarm();
					todayAlarm.setOption();
					todayAlarm.refresh();
					var params = [ {
						name : 'startTime',
						value : time[0].trim() + ":00"
					}, {
						name : 'endTime',
						value : time[1].trim() + ":00"
					}, {
						name : 'alarmType',
						value : $("#todayQueryAlarmType").val()
					} ];
					_this.loadTodayAlarmTable(params);
					_this.reloadTodayAlarmTable(params);
				}
			}
		});
	},

	initVehicleList : function() {
		$.ajax({
			type : 'post',
			url : appCtx + "/system/vehicle/loadUserVehicle.html",
			cache : false,
			dataType : "JSON",
			success : function(data) {
				if (data) {
					var selectStr = "";

					selectStr += "<option value=''>请选择车牌号码</option>";
					var newSelectStr = "";

					newSelectStr += "<option value=''>请选择车牌号码</option>";

					$.each(data.vehicleList, function(entryIndex, entry) {
						selectStr += "<option value='" + entry.vehicleId + "'>"
								+ entry.registrationNO + "</option>";
						newSelectStr += "<option value='" + entry.commNo + "'>"
								+ entry.registrationNO + "</option>";
					});
					// 当日报警车牌号
					$('#quaryCar').html(selectStr);
					// 待处理报警
					$('#pendingQuaryCar').html(newSelectStr);
				}
			}
		});
	},
	getparams : function() {
		var vid = $("#quaryCar").val();
		var alarmType = $("#quaryType").val();
		var alarmCondition = $("#quaryCondition").val();
		var handle = $("#ishandle").val();
		var dealer = $("#dealPeople").val();
		var startDate = $("#inputStartDate").val();
		var endDate = $("#inputEndDate").val();
		var params = [ {
			name : 'vid',
			value : vid
		}, {
			name : 'alarmType',
			value : alarmType
		}, {
			name : 'alarmCondition',
			value : alarmCondition
		}, {
			name : 'handle',
			value : handle
		}, {
			name : 'dealPeople',
			value : dealer
		}, {
			name : 'startDate',
			value : startDate
		}, {
			name : 'endDate',
			value : endDate
		} ];
		return params;
	},
	bindquery : function() {
		var _this = this;

		$('#queryAlarm').click(
				function() {
					// 历史报警查询不能超过三天
					var start = $("#inputStartDate").val().replace(/-/g, "/");
					var end = $("#inputEndDate").val().replace(/-/g, "/");
					if ((new Date(end).getTime() - new Date(start).getTime())
							/ (1000 * 60 * 60 * 24) > 3) {
						global.ajaxLoading.pop("历史报警查询不能超过三天", false, 1000);
						return;
					}
					$("#queryResult").flexOptions({
						newp : 1,
						params : realAlarm.getparams()
					}).flexReload();
				});
		// 待处理报警绑定事件
		$('#pendingQueryBtn').click(function() {
			realAlarm.reloadTabCommon(1,100);
		});
		// 今日报警绑定事件
		$('#todayQueryAlarmTypeBtn').click(function() {
			realAlarm.relaodTodayAlarm();
		});

		$('#dealAlarm').click(function() {
			$('#handerHistoryContent').val("");
			var vehicle = [];
			var alarmType = [];
			var alarmTime = [];
			var alarmName = [];
			$('#queryResult').find('.trSelected').each(function() {
				var tdArr = $(this).children();
				if (tdArr.eq(10).find('div').html() == null || tdArr.eq(10).find('div').html() == ''
					|| tdArr.eq(10).find('div').html() == '&nbsp;') {
					vehicle.push(tdArr.eq(2).find('div').html());
					alarmType.push(tdArr.eq(3).find('div').html());
					alarmTime.push(tdArr.eq(9).find('div').html());
					alarmName.push(tdArr.eq(6).find('div').html());
				}
			});

			var vehicles = vehicle[0];
			var alarmTypes = alarmType[0];
			for (var i = 0; i < vehicle.length; i++) {
				if (vehicle[i] != vehicles) {
					global.ajaxLoading.pop("车辆不一致", false, 1000);
					return;
				}
				if (alarmType[i] != alarmTypes) {
					global.ajaxLoading.pop("报警类型不一致", false,1000);
					return;
				}
			}
			if (vehicle == null || vehicle == "") {
				if ($('#queryResult').find('.trSelected').size() > 0) {
					global.ajaxLoading.pop("你选择的报警数据已经处理",false, 1000);
					return;
				} else {
					global.ajaxLoading.pop("请选择车辆", false, 1000);
					return;
				}
			}
			$('#handlerhisAlarmTime').val(alarmTime);
			$("#handlerhisVevhicleid").val(vehicles);
			$("#handlerhisAlarmType").val(alarmTypes);
			$("#showHistoryAlarmType").val(alarmName[0]);
			realAlarm.queryHistoryAlarm();
		});
	},
	queryHistoryAlarm : function() {
		$("#handlerHistoryTime").val(global.getTime(new Date()));
		$('#handlehistoryAlarm').modal('show');
	},

	HistoryAlarmHandler : function() {
		if ($("#handlerhisVevhicleid").val() == "") {
			global.ajaxLoading.pop("未选择处警车辆,不能处警", false, 1000);
			return;
		}
		if ($("#handlerhisAlarmType").val() == "") {
			global.ajaxLoading.pop("未选择处警类型,不能处警", false, 1000);
			return;
		}
		if ($("#handlerhisAlarmTime").val() == "") {
			global.ajaxLoading.pop("未选择报警时间,不能处警", false, 1000);
			return;
		}

		var params = {
			"vehicleId" : $("#handlerhisVevhicleid").val(),
			"alarmType" : $("#handlerhisAlarmType").val(),
			"alarmTime" : $("#handlerhisAlarmTime").val(),
			"result" : $("#modal-hisoryform-select").val(),
			"content" : $("#handerHistoryContent").val(),
		};

		$.ajax({
			url : appCtx + 'alarm/history/handler.html?time='
					+ new Date().getTime(),
			type : 'POST',
			contentType : "application/json; charset=utf-8",
			dataType : 'json',
			cache : 'false',
			data : JSON.stringify(params),
			success : function(result) {
				if (result.data == 0) {
					global.ajaxLoading.close();
					$('#handlehistoryAlarm').modal('hide');
					realAlarm.reloadHistoryAlarm();
				} else {
					global.ajaxLoading.pop(result.msg, true, 1000);
					global.ajaxLoading.close();
				}
			}
		});

	},
	/**
	 * 重新加载历史报警
	 */
	reloadHistoryAlarm : function() {
		var page = $("#queryResult").page;

		$("#queryResult").flexOptions({
			newp : page,
			params : realAlarm.getparams()
		}).flexReload();

	},
	/**
	 * 历史报警
	 */
	historyAlarm : function() {
		var quaryCar = function() {
			$("#quaryCar").select2();
			$("#quaryType").select2();
			$("#quaryCondition").select2();
			$("#ishandle").select2();
		};

		quaryCar();
		var formatAlarmAction = function(vehicleID, alarmkind, alarmType,
				alarmTime, checked, lon, lat, head, gpsSpeed) {
			if (checked != 'false') {
				str = "<a class='viewHisMap' vehilceID=\""
						+ vehicleID
						+ "\" alarmType=\""
						+ realAlarm.tempAlarmType.getAlarmName(alarmkind)
						+ "\" alarmkind=\""
						+ alarmkind
						+ "\" lon=\""
						+ lon
						+ "\" lat=\""
						+ lat
						+ "\" head=\""
						+ head
						+ "\" gpsSpeed=\""
						+ gpsSpeed
						+ "\" alarmTime=\""
						+ alarmTime
						+ "\" href='javascript:void(0)' style='float: left;'>查看地图&nbsp; &nbsp; </a>";
				return str;
			} else {
				var str = "<a class='alarmHistoryDeal' vid=\""
						+ vehicleID
						+ "\" alarmType=\""
						+ alarmType
						+ "\" alarmkind=\""
						+ alarmkind
						+ "\"alarmTime=\""
						+ alarmTime
						+ "\" href='javascript:void()'style='float: left;' >处理报警&nbsp; | &nbsp; </a>  ";
				str += "<a class='viewHisMap' vehilceID=\""
						+ vehicleID
						+ "\" alarmType=\""
						+ realAlarm.tempAlarmType.getAlarmName(alarmkind)
						+ "\" alarmkind=\""
						+ alarmkind
						+ "\" lon=\""
						+ lon
						+ "\" lat=\""
						+ lat
						+ "\" head=\""
						+ head
						+ "\" gpsSpeed=\""
						+ gpsSpeed
						+ "\" alarmTime=\""
						+ alarmTime
						+ "\" href='javascript:void(0)' style='float: left;'>查看地图&nbsp; &nbsp; </a>";
				return str;
			}
		};
		$('body').on(
				'click',
				'.alarmHistoryDeal',
				function() {
					$('#handerHistoryContent').val("");
					var vid = $(this).attr("vid");
					var alarmType = $(this).attr("alarmkind");
					var alarmTime = $(this).attr("alarmTime");
					var params = {
						"VehicleID" : vid,
						"AlarmType" : alarmType,
						"alarmTime" : alarmTime
					};
					$('#handlerhisAlarmTime').val(alarmTime), $(
							"#handlerhisVevhicleid").val(vid), $(
							"#handlerhisAlarmType").val(alarmType), $(
							"#showHistoryAlarmType").val(
							$(this).attr("alarmType"));
					realAlarm.queryHistoryAlarm();

				});
		$('body').on(
				'click',
				'.viewHisMap',
				function() {
					var vehilceID = $(this).attr("vehilceID");
					var alarmType = $(this).attr("alarmType");
					var alarmkind = $(this).attr("alarmkind");
					var alarmTime = $(this).attr("alarmTime");
					var lon = $(this).attr("lon");
					var lat = $(this).attr("lat");
					var head = $(this).attr("head");
					var gpsSpeed = $(this).attr("gpsSpeed");
					window.open(appCtx
							+ 'alarm/history/location.html?vehicleID='
							+ vehilceID + "&alarmType=" + alarmType
							+ "&alarmTime=" + alarmTime + "&lon=" + lon
							+ "&lat=" + lat + "&head=" + head + "&gpsSpeed="
							+ gpsSpeed);
				});

		var queryResult = function() {
			var formatAlarmInfo = function(msg) {
				var str = '<div class="textOverFlow" style="padding-left:0;padding-right:0;" title="'
						+ msg + '">' + msg + '</div>';
				return str;
			};
			$("#queryResult").flexigrid(
					{
						dataType : 'json',
						url : appCtx + 'alarm/history/list.html?time='
								+ new Date().getTime(),
						params : realAlarm.getparams(),
						contentType : "application/json; charset=utf-8",
						method : 'POST',
						colModel : [
								{
									display : '车牌号',
									name : 'registrationNO',
									width : 100,
									sortable : false,
									align : 'left',
									checked : 'checked'
								},
								{
									name : 'vehicleID',
									width : 80,
									sortable : false,
									hide : true,
									align : 'left',
								},
								{
									name : 'alarmkind',
									width : 80,
									sortable : false,
									hide : true,
									align : 'left',
								},
								{
									display : '自编号',
									name : 'internalNo',
									width : 80,
									sortable : false,
									align : 'left',
								},
								{
									display : '车队',
									name : 'vehicleTeamName',
									width : 150,
									sortable : false,
									align : 'left',
								},
								{
									display : '报警类型',
									name : 'alarmType',
									width : 60,
									sortable : false,
									align : 'left',
								},
								{
									display : '报警来源',
									name : 'alarmSource',
									width : 60,
									sortable : false,
									align : 'left',
								},
								{
									display : '报警说明',
									name : 'alarmParam',
									width : 220,
									sortable : false,
									align : 'left',
									// paramcolnames:['alarmParam'],
									// handlefunction:formatAlarmInfo,
									showTitle : "alarmParam"
								},
								{
									display : '报警时间',
									name : 'alarmTime',
									width : 130,
									sortable : false,
									align : 'left',
								},
								{
									display : '处理时间',
									name : 'dealTime',
									width : 150,
									sortable : false,
									align : 'left',
								},
								{
									display : '处理内容',
									name : 'dealContent',
									width : 150,
									sortable : false,
									align : 'left',
									// paramcolnames:['dealContent'],
									// handlefunction:formatAlarmInfo,
									showTitle : 'dealContent'
								},
								{
									display : '处理人',
									name : 'dealer',
									width : 70,
									sortable : false,
									align : 'left',
								},
								{
									display : '操作',
									name : 'Handle',
									paramcolnames : [ "vehicleID", "alarmkind",
											"alarmType", "alarmTime",
											"checked", "longitude", "latitude",
											"head", "gpsSpeed" ],
									handlefunction : formatAlarmAction,
									width : 150,
									sortable : false,
									align : 'left',
								} ],

						resizable : false,
						sortname : "terminalId",// 第一次加载数据时排序列
						sortorder : "desc",// 第一次加载数据时排序类型
						usepager : true,// 是否分页，默认为true。
						showToggleBtn : false,
						showTableToggleBtn : false,// 是否显示收起/打开按钮,默认不显示。
						useRp : true,// 是否可以动态设置每页显示的结果数，默认为false。
						rp : 10,// 每页记录数，默认为10
						rpOptions : [ 10, 50, 100, 300, 500 ], // 每页结果数
						checkbox : true,// 是否要多选框,默认为false。
						rowId : 'terminalId',// 多选框绑定行的id,只有checkbox :
						// true时才有效。
						singleSelect : true,
						width : 'auto',// 表格宽度
						height : nav.whiceH[1] - 185, // 表格高度
						titDisplay : false,
						onSuccess : function(data) {

						},
						onSelectRow : function(row) {

						},
						onSelectAllRow : function(data) {

						}
					});
		};
		queryResult();
	},
	/**
	 * 处理报警保存
	 */
	handleAlarmSave : function() {
		$('#handleAlarmSave').click(function() {
			if ($.trim($("#handerContent").val()) == '') {
				global.ajaxLoading.pop('请输入处警内容', false, 800);
				return;
			}
			global.ajaxLoading.pop('正在处警,请稍等....', true);
			
			realAlarm.realTimeAlarmHandler();
		});
		$('#handleHistoryAlarmSave').click(function() {
			if ($.trim($("#handerHistoryContent").val()) == '') {
				global.ajaxLoading.pop('请输入处警内容', false, 800);
				return;
			}
			realAlarm.HistoryAlarmHandler();
			global.ajaxLoading.pop('正在保存', true, 1000);
		});
	},
	// /**
	// * 日历的显示
	// */
	queryDetail : function(showDome, clickDome, height, callback) {
		$(clickDome).on('click', function() {
			if ($(this).hasClass('active')) {
				$(this).removeClass('active');
				$(showDome).css('height', height);
			} else {
				$(this).addClass('active')
				$(showDome).css('height', 'auto');
			}
			var h = $('#historyAlarm').height();
			callback && callback(h);
		})
	}

};
realAlarm.init();
